Comments (5)
Language tags should be easy to recognize and remember.
Since we use class="prettyprint" to identify regions to prettyprint, I suggest
the
following convention
class="prettyprint" -- make a best guess as to language
class="prettyprint lang-java" -- do java prettyprinting
The "lang-" prefix is followed by the filename extension commonly used for
source
files in that language to avoid problems with C# not being a valid html
identifier.
We will use cc for C++ since it is an identifier, and more commonly used than
cpp or cxx.
Original comment by [email protected]
on 15 Aug 2007 at 6:57
from code-prettify.
To flesh out the high level design, the prettify loop will be changed to:
(1) Extract tags and store [tag, position-in-string]
(2) Use a regex based lexer to lex the string sans tags
(3) Run a classifier over tokens
(4) Merge tags back into token list and join tokens to produce html
from the current
(1) Split into chunks of tags | text
(2) Split text chunks into tokens using a state machine over a character
iterator
that unescapes entities lazily
(3) Join token list to produce html
This will cut out the hand coded state machines that iterate over characters,
replacing them with the regex based lexers from 2.
We can then define a language handler as a { lexer, classifier } pair.
Define a language handler for C-style langs and one for markup langs to get us
backwards compatible.
Modify the main prettify function to look for a lang-\w+ class, and, if present,
choose the appropriate lexer.
Implement a lisp/scheme lexer to demonstrate that new handlers can be added and
document.
Implement other lexers as demanded.
Original comment by [email protected]
on 15 Aug 2007 at 8:43
from code-prettify.
Finished rewriting the existing lexers to use PR_createSimpleLexer which is
regexp based.
Original comment by [email protected]
on 31 Aug 2007 at 8:49
from code-prettify.
I realize this would be an entirely different thing, but what about taking
advantage
of a library of pre-written syntax highlighting rules, like VIM's? The
syntax-defining commands aren't that complicated. (Well, they don't seem to be,
what
do I know?)
Original comment by [email protected]
on 7 Feb 2008 at 11:34
from code-prettify.
@r38
Original comment by [email protected]
on 5 Jul 2008 at 4:04
- Changed state: Fixed
from code-prettify.
Related Issues (20)
- Add support for Chapel? HOT 2
- [Feature Request] Add diff / patch highlighting support for StackExchange websites. HOT 1
- Add support for Idris
- No GitHub wiki
- Add support for Perl6 HOT 1
- How to use `Google Code Prettifier` to VBA macro in Microsoft Excel ?
- Add support for AppleScript HOT 1
- White space indentation added on Firefox when using linenums class
- Performance problem with "Hit Test" in Chrome HOT 1
- Wrong highlighting on stackoverflow.com vba if default is used HOT 1
- Extra white-space appears on the first line HOT 1
- XSS risks?
- Request: terraform / hcl language support HOT 2
- Golang run-on string when backticks appear to be escaped
- Makefile: is it really supported?
- Request support of ChoiceScript language
- Added 'record' among Java keywords
- How auto justify codes?
- Request support for DigitalMicrograph Scripting language (DM-script)
- Add support to MiniZinc
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from code-prettify.