GithubHelp home page GithubHelp logo

goplus / community Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 15.0 57.49 MB

Go+ Community written in Go+

License: Apache License 2.0

Go 0.58% HTML 1.04% Vue 0.19% CSS 0.01% JavaScript 98.08% Dockerfile 0.01% Shell 0.01% Batchfile 0.01% Prolog 0.09%
community gop goplus

community's Introduction

Build Status Go Report Card Coverage Status GitHub release Discord

Our vision is to enable everyone to create production-level applications.

Easy to learn

  • Simple and easy to understand
  • Smaller syntax set than Python in best practices

Ready for large projects

  • Derived from Go and easy to build large projects from its good engineering foundation

The Go+ programming language is designed for engineering, STEM education, and data science.

  • For engineering: working in the simplest language that can be mastered by children.
  • For STEM education: studying an engineering language that can be used for work in the future.
  • For data science: communicating with engineers in the same language.

For more details, see Quick Start.

Command Style Code

Different from the function call style of most languages, Go+ recommends command style code:

println "Hello world"

To emphasize our preference for command style, we introduce echo as an alias for println:

echo "Hello world"

For more discussion on coding style, see https://tutorial.goplus.org/hello-world.

Go+ Classfiles

One language can change the whole world.
Go+ is a "DSL" for all domains.

Rob Pike once said that if he could only introduce one feature to Go, he would choose interface instead of goroutine. classfile is as important to Go+ as interface is to Go.

In the design philosophy of Go+, we do not recommend DSL (Domain Specific Language). But SDF (Specific Domain Friendliness) is very important. The Go+ philosophy about SDF is:

Don't define a language for specific domain.
Abstract domain knowledge for it.

Go+ introduces classfile to abstract domain knowledge.

Sound a bit abstract? Let's see some Go+ classfiles.

yap: Yet Another HTTP Web Framework

This classfile has the file suffix .yap.

Create a file named get.yap with the following content:

html `<html><body>Hello, YAP!</body></html>`

Execute the following commands:

gop mod init hello
gop get github.com/goplus/yap@latest
gop mod tidy
gop run .

A simplest web program is running now. At this time, if you visit http://localhost:8080, you will get:

Hello, YAP!

YAP uses filenames to define routes. get.yap's route is get "/" (GET homepage), and get_p_#id.yap's route is get "/p/:id" (In fact, the filename can also be get_p_:id.yap, but it is not recommended because : is not allowed to exist in filenames under Windows).

Let's create a file named get_p_#id.yap with the following content:

json {
	"id": ${id},
}

Execute gop run . and visit http://localhost:8080/p/123, you will get:

{"id": "123"}

See yap: Yet Another HTTP Web Framework for more details.

spx: A Go+ 2D Game Engine

Screen Shot1 Screen Shot2

Through this example you can learn how to implement dialogues between multiple actors.

Here are some codes in Kai.spx:

onStart => {
	say "Where do you come from?", 2
	broadcast "1"
}

onMsg "2", => {
	say "What's the climate like in your country?", 3
	broadcast "3"
}

We call onStart and onMsg to listen events. onStart is called when the program is started. And onMsg is called when someone calls broadcast to broadcast a message.

When the program starts, Kai says Where do you come from?, and then broadcasts the message 1. Who will recieve this message? Let's see codes in Jaime.spx:

onMsg "1", => {
	say "I come from England.", 2
	broadcast "2"
}

Yes, Jaime recieves the message 1 and says I come from England.. Then he broadcasts the message 2. Kai recieves it and says What's the climate like in your country?.

The following procedures are very similar. In this way you can implement dialogues between multiple actors.

See spx: A Go+ 2D Game Engine for more details.

gsh: Go+ DevOps Tools

Yes, now you can write shell script in Go+. It supports all shell commands.

Let's create a file named example.gsh and write the following code:

mkdir "testgsh"

Don't need a go.mod file, just enter gop run ./example.gsh directly to run.

See gsh: Go+ DevOps Tools for more details.

Key Features of Go+

How to install

on Windows

winget install goplus.gop

on Debian/Ubuntu

sudo bash -c ' echo "deb [trusted=yes] https://pkgs.goplus.org/apt/ /" > /etc/apt/sources.list.d/goplus.list'
sudo apt update
sudo apt install gop

on RedHat/CentOS/Fedora

sudo bash -c 'echo -e "[goplus]\nname=Go+ Repo\nbaseurl=https://pkgs.goplus.org/yum/\nenabled=1\ngpgcheck=0" > /etc/yum.repos.d/goplus.repo'
sudo yum install gop

on macOS/Linux (Homebrew)

Install via brew

$ brew install goplus

from source code

Note: Requires go1.19 or later

git clone https://github.com/goplus/gop.git
cd gop

# On mac/linux run:
./all.bash
# On Windows run:
all.bat

Go+ Applications

2D Games powered by Go+

Web Programming

DevOps Tools

Data Processing

IDE Plugins

Contributing

The Go+ project welcomes all contributors. We appreciate your help!

For more details, see Contributing & compiler design.

Give a Star! ⭐

If you like or are using Go+ to learn or start your projects, please give it a star. Thanks!

community's People

Contributors

aofei avatar baihhh avatar carlji avatar dependabot[bot] avatar huangsihao7 avatar ironicbo avatar kasey0727 avatar linjie7674 avatar liuscraft avatar motongxue avatar nnnnn319 avatar wu-jj avatar xhyqaq avatar xushiwei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

community's Issues

bug: user info page not data

problem

The user's information was not displayed correctly, and the console output an error about the avatar
userId: 47062832
微信截图_20240219093429

expectant

微信截图_20240219093449

env info

system: windows
browser: chrome、edge
community version: dev, 2024/2/19 latest
userid: 47062832

1.15-1.19 Project Schedule

Description

We need to set up the tasks and scheduling for each Task, each task need to be associated with one or multi PRs.

Peer Review

Task

  1. Account & User Module - @wu-jj @xhyqaq
  • Implement account sdk in goplus community.
  • Implement uuid storage.
  • Implement article share.
  1. Article Module - @Baihhh
  • Implement article creation, editing, and deletion functionality.
  • Article list view functionality.
  • Article details view functionality.
  • Support article translation with translation module. @IRONICBo
  1. Markdown Support - @nnnnn319
  • Article editor supports Markdown syntax with cherry-markdown.
  • Save markdown preview functionality, save to QiNiu Object Storage or local storage. @Baihhh @xhyqaq
  • Support goplus highlight.
  • Support Video markdown tag. @IRONICBo @xhyqaq
  1. Translation Functionality - @IRONICBo
  • Implement translation of markdown articles.
  • Implement batch translation in long text translation.
  • Support video to text.
  • Support text to audio.
  1. Media Module - @xhyqaq
  • Users can upload and delete media files.
  • Media file display functionality.
  • Media file download functionality.
  1. User Interface - @Kasey0727
  • Design and implement user interface in yap html.
  • Design and implement article interface in yap html.
  • Design and implement article list(home) interface in yap html.

Everyone is expected to complete their part by the end of this week, and submit their code and test reports. If you encounter any issues or need help during the development process, please raise it in the issue promptly.

1.29-2.2 sprint planning

1.29-2.2 sprint planning

Peer Review

Article section

Markdown editing

  • Modify markdown editing page, nested in gop community header and footer. @nnnnn319
  • Support custom video player. @nnnnn319
  • Support submit article info with popup windows. @nnnnn319

User Interface

Video Player Part

  • support video player embedding from media source, and add subtitle file logic. @xhyqaq @nnnnn319
  • Intergration Video To Text task. @IRONICBo

Yap framework

Community clean up

  • Move gox logic code to internal/core @wu-jj

CI/CD processing

2.26-3.1 sprint planning

2.26-3.1 sprint planning

Peer Review

Article section

  • Add category in article submitting and support categorized view in home. @Baihhh
  • Fix article issues. @Baihhh
  • Support view and like counting @Baihhh @Kasey0727
  • Support private articles view. @IRONICBo

Markdown editing

User Interface

CI/CD processing

  • Support PR preview.

Go+ doc

Reference repo: https://github.com/golang/pkgsite

Go+ Vscode extensions

  • Fix language server issues. @LiusCraft
  • Fix goplus slow compilation issues in the Windows environment. @LiusCraft

Go+ Engineering

1.23-1.26 sprint planning

1.23-1.26 sprint planning

Peer Review

Article section

Markdown editing

  • Modify markdown editing page, nested in gop community header and footer. 2 @nnnnn319
  • support compiling into html to support gop to display and run 2 @nnnnn319
  • markdown editor page design 1 @Kasey0727

User Interface

  • interact with the account subsystem, add the interface to get user information, and consider supporting rpc. 2 @IRONICBo @wu-jj
  • Support wechat login, and wechat share. @wu-jj @xhyqaq

Video Player Part

  • support video player embedding from media source, and add subtitle file logic 3 @xhyqaq

Yap framework

  • support yap middleware injection 1 @xhyqaq
  • yap middleware unified user processing, and security features 1 @IRONICBo @wu-jj
  • error page redirect, support automatic redirect to 5xx/2xx/4xx error page. @xhyqaq @Kasey0727
  • Update zap to xlog.

CI/CD processing

  • support code formatter in CI check.
  • test machine environment variable configuration support 1 @linjie7674

enhance: update article viewer page

We've updated the reading page, but it's a little strange to view at the moment.

Maybe we take a cue from Medium's style and bring user information and likes to the center of the page.

image image

bug: the header of edit_yap.html

  • If {{ template "header" .}} (line 58) is deleted, it will cause problems on this page. Besides, according to UI design draft, there is no such header in layout_yap.html.
  • If possible, please modify the content of layout_yap.html according to the header of home_yap.html to maintain the unity of page style. @LiusCraft

enhance: support admin viewer.

For the security consideration of Release version, we support that articles are not disclosed by default when uploading, and users with admin privileges need to choose to disclose them manually.

Bug: Video bug list here

  • Media(Video/Images) will be fully loaded, we need to use page query to reduce request count.

  • image

  • Support load video with cover and video source.

Get video cover from frontend(@nnnnn319) or QiNiu storage?

bug: add article

bug: When adding acticle, the cover display has some proplem
image

bug: After adding an article successfully, there is a problem with the redirected page.
image

2.4-2.8 sprint planning

2.4-2.8 sprint planning

Peer Review

Article section

Markdown editing

  • Fix goplus markdown component. @nnnnn319
  • Modify markdown editing page, nested in gop community header and footer. @nnnnn319
  • Update custom video player. @nnnnn319

User Interface

Video Player Part

  • support video player embedding from media source, and add subtitle file logic. @xhyqaq @nnnnn319
  • Intergration Video To Text function. @IRONICBo
  • Convert text with timestamp to WebVTT, and save to storage. @IRONICBo
  • Intergration generate video to text task, and support custom video player. @IRONICBo

Yap framework and web

CI/CD processing

2.18-2.23 sprint planning

2.18-2.23 sprint planning

Peer Review

Article section

  • Support categorized view in home. @Baihhh
  • Fix editor page issues. @Baihhh

Markdown editing

User Interface

Video Player Part

  • Intergration generate video to text task, and support custom video player. @IRONICBo

Yap framework and web

CI/CD processing

Go+ doc

Reference repo: https://github.com/golang/pkgsite

Go+ Vscode extensions

  • Fix language server issues. @LiusCraft
  • Fix goplus slow compilation issues in the Windows environment. @LiusCraft

Bug: Search with none value

What happened:

Search error when search box is empty.

What you expected to happen:

When search box is empty, return all blogs.

How to reproduce it (as minimally and precisely as possible):

All.

Anything else we need to know?:

image

Environment:

All.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.